package com.advert.boot.system.model.form;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;

/**
 * 产品信息 表单实体
 *
 * @author Theo
 * @since 2024-07-29 11:17:26
 */
@Data
@Schema(description = "产品信息Form实体")
public class ProductForm implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;

    @Schema(description = "产品信息ID")
    private Long id;

    @NotBlank(message = "厂家/供应商名称不能为空")
    @Schema(description = "厂家/供应商名称")
    @Size(max = 128, message = "厂家/供应商名称长度不能超过128个字符")
    private String companyName;

    @NotBlank(message = "品牌名称不能为空")
    @Schema(description = "品牌名称")
    @Size(max = 128, message = "品牌名称长度不能超过128个字符")
    private String brandName;

    @NotBlank(message = "材料名称与型号不能为空")
    @Schema(description = "材料名称与型号")
    @Size(max = 128, message = "材料名称与型号长度不能超过128个字符")
    private String materialNameModel;

//    @NotBlank(message = "产品参数不能为空")
    @Schema(description = "产品参数")
    @Size(max = 128, message = "产品参数长度不能超过128个字符")
    private String productParameter;

    @NotBlank(message = "规格不能为空")
    @Schema(description = "规格")
    @Size(max = 128, message = "规格长度不能超过128个字符")
    private String specifications;

    @Size(max = 128, message = "面膜长度不能超过128个字符")
    @Schema(description = "面膜")
    private String facialMask;

    @Schema(description = "材质")
    @Size(max = 128, message = "材质长度不能超过128个字符")
    private String material;

    @Schema(description = "耐候性（年）")
    @Size(max = 64, message = "耐候性（年）长度不能超过64个字符")
    private String weatherResistance;

    @Size(max = 128, message = "底纸长度不能超过128个字符")
    @Schema(description = "底纸")
    private String backedPaper;

    @Schema(description = "背胶特性")
    @Size(max = 128, message = "背胶特性长度不能超过128个字符")
    private String adhesiveProperties;

    @Schema(description = "用途")
    @Size(max = 128, message = "用途长度不能超过128个字符")
    private String purpose;

    @Schema(description = "特性")
    @Size(max = 128, message = "特性长度不能超过128个字符")
    private String characteristic;

    @Schema(description = "工艺")
    @Size(max = 128, message = "工艺长度不能超过128个字符")
    private String workmanship;

    @Schema(description = "适用墨水")
    @Size(max = 128, message = "适用墨水长度不能超过128个字符")
    private String compatibleInk;

    @Schema(description = "安装方式")
    @Size(max = 64, message = "安装方式长度不能超过64个字符")
    private String installationMethod;

    @Size(max = 64, message = "打印方式长度不能超过64个字符")
    @Schema(description = "打印方式")
    private String printMethod;

    @Schema(description = "材料外包装附件Id")
    private Long materialPackageFileId;

    @Schema(description = "材料表明图附件Id")
    private Long materialDescriptionDiagramFileId;

    @Schema(description = "材料背面图附件")
    private Long materialBackViewFileId;

    @Schema(description = "环保认证附件Id")
    private Long certificatesFileId;

    @Schema(description = "防滑认证附件Id")
    private Long antiSlipCertificationFileId;

    @Schema(description = "阻燃认证附件Id")
    private Long flameRetardantCertificationFileId;
}
